﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using CurriculasEntities;
using CurriculasController;
using System.Data;


namespace GestionCurriculosGlobal
{
    public partial class frmCarrera : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            Session["opcion"] = 1;
            if (!Page.IsPostBack)
            {
                //CARGAR GRILLA
                CargarGrilla();
            }

        }

        protected void btnCrear_Click(object sender, EventArgs e)
        {
            Response.Redirect("frmRegCarrera.aspx");
        }

        protected void btnModificar_Click(object sender, EventArgs e)
        {
            int contador = 0;
            string codCarrera = "";
            string strScript = "";
            foreach (GridViewRow row in gvCarreras.Rows)
            {
                if (row.RowType == DataControlRowType.DataRow)
                {
                    CheckBox chkRow = (row.Cells[0].FindControl("chkCarrera") as CheckBox);
                    if (chkRow.Checked)
                    {
                        codCarrera = row.Cells[1].Text;
                        contador += 1;
                    }
                }
            }

            if (contador == 0)
            {
                strScript = "alert('No se ha seleccionado una carrera a modificar.')";
            }
            else if (contador == 1)
            {
                //List<ListaEstadoCursoBE> _lstEstado = new ListaBL().ListarEstadoCurso(int.Parse(codCurso)).ToList();
                //if (_lstEstado.Count == 1)
                //{
                //    string estado = "";
                //    foreach (ListaEstadoCursoBE lstEstado in _lstEstado)
                //    {
                //        estado = lstEstado.estado;
                //    }

                //    if (estado == "1")
                //    {
                //        Response.Redirect("frmRegCurso.aspx?idCurso=" + codCurso);
                //    }
                //    else
                //    {
                //        strScript = "alert('No se puede modificar, debido a que el curso seleccionado esta asociado a un plan curricular con estado diferente a Por Elaborar.')";

                //    }
                //}
                //else
                //{
                    Response.Redirect("frmRegCarrera.aspx?idCarrera=" + codCarrera);
                //}

            }
            else if (contador > 1)
            {
                strScript = "alert('Solo se puede modificar una carrera.')";
            }


            Page.ClientScript.RegisterStartupScript(this.GetType(), "CallMyFunction", strScript, true);
        }

        protected void btnEliminar_Click(object sender, EventArgs e)
        {
            int contador = 0;
            int codCarrera = 0;
            string strScript = "";
            foreach (GridViewRow row in gvCarreras.Rows)
            {
                if (row.RowType == DataControlRowType.DataRow)
                {
                    CheckBox chkRow = (row.Cells[0].FindControl("chkCarrera") as CheckBox);
                    if (chkRow.Checked)
                    {
                        codCarrera = int.Parse(row.Cells[1].Text);
                        contador += 1;
                    }
                }
            }

            if (contador > 1)
            {
                strScript = "alert('Solo se puede eliminar una Carrera.')";

            } if (contador == 1)
            {

                if (codCarrera != 0)
                {

                    //List<ListaEstadoCursoBE> _lstEstado = new ListaBL().ListarEstadoCurso(codCurso).ToList();

                    //if (_lstEstado.Count > 0)
                    //{

                    //    //Page.ClientScript.RegisterStartupScript(this.GetType(), "CallMyFunction2", "alert('El curso no se puede eliminar, debido a que esta asociado a un Plan Curricular.')", true);
                    //    strScript = "alert('El curso no se puede eliminar, debido a que esta asociado a un Plan Curricular.')";
                    //}
                    //else
                    //{
                        strScript = "ConfirmDelete('" + codCarrera + "')";

                    //}

                }
            }
            else if (contador == 0)
            {

                strScript = "alert('Seleccionar una carrera para eliminar.')";
            }




            Page.ClientScript.RegisterStartupScript(this.GetType(), "CallMyFunction", strScript, true);
        }

        protected void btnEliminarTrue_Click(object sender, EventArgs e) {
            int codCarrera = int.Parse(hidCodCarrera.Value);
            string strScript = "";
            if (codCarrera != 0)
            {
                CarreraBL objBL = new CarreraBL();
                CarreraBE objBE = new CarreraBE();

                objBE = objBL.Obtener(codCarrera);
                objBE.estado = "2";

                objBE = objBL.Modificar(objBE);
                CargarGrilla();

                strScript = "alert('Se eliminó la carrera con código: " + codCarrera + "');";
            }

            Page.ClientScript.RegisterStartupScript(this.GetType(), "CallMyFunction2", strScript, true);
        }

        protected void btnConsultar_Click(object sender, EventArgs e)
        {
            CargarGrilla();
        }

        private void CargarGrilla()
        {
            IEnumerable<CarreraBE> _lstCarreras = new CarreraBL().ListarTodos().Where(p => p.nombre.ToUpper().Contains(txtNombre.Text.ToUpper()) && p.mision.ToUpper().Contains(txtMision.Text.ToUpper()) && p.estado == "1");
            gvCarreras.DataSource = _lstCarreras.OrderByDescending(p=> p.codCarrera);
            gvCarreras.DataBind();
        }
    }
}